SciChart WPF 2D Charts > ChartModifier API > Performance Monitoring > SciChartPerformanceOverlay Control
SciChartPerformanceOverlay Control

SciChartPerformanceOverlay is a lightweight heads-up display (HUD) that connects to a SciChartSurface and displays live rendering performance (FPS and frame timing) together with a rolling FPS chart and an optional total points counter. It helps you validate and tune performance in streaming, FIFO, or heavy-interaction scenarios.

How it works

SciChartPerformanceOverlay attaches to a target chart (SciChartSurface) via the TargetSurface property. On attach, it hooks the Surface’s Loaded/Unloaded events and subscribes to two render events:

  1. WPF frame tick through the CompositionTarget.Rendering event, that measures WPF render passes.
  2. SciChart render tick through the SciChartSurface.Rendered event, that is fired every time SciChartSurface is redrawn.

Also, it uses a Stopwatch to compute per-frame FPS and draws a rolling series on a chart.

How to use it

SciChartPerformanceOverlay can be attached to a SciChartSurface with WPF Binding. The code snippet below shows how to use ‘ElementName’ binding for that purpose:

Adding SciChartPerformanceOverlay
Copy Code
<Grid>
    <!-- Your main chart -->
    <s:SciChartSurface x:Name="MainChart"
                       s:VisualXcceleratorEngine.IsEnabled="True" />
    <!-- Performance HUD -->
    <s:SciChartPerformanceOverlay
        TargetSurface="{Binding ElementName=MainChart}"
        HorizontalAlignment="Right"
        VerticalAlignment="Top"
        Margin="8"
        Padding="8"
        Background="#33000000"
        Foreground="White"
        FontWeight="Bold"
        IsHitTestVisible="False"/>
</Grid>

Styling & templating

You can redefine the SciChartPerformanceOverlay template to achieve desired layout:

  • Reorganize the layout (e.g., stack FPS labels, add an inline SciChartSurface to plot WpfFpsSeries)
  • Bind text labels to WpfFps, SciChartFps, and TotalPointCount properties
  • Toggle a mini-chart panel via the ChartsVisibility porperty

Where to find examples

It’s used extensively in SciChart’s performance demos to surface metrics such as FPS (frames per second) and frame timing while charts are updating at high data rates. The overlay helps you verify performance targets (e.g., ~60 FPS) and quickly spot bottlenecks during development and tuning.

Typical uses:

  • Realtime/FIFO charts (telemetry, oscilloscopes) to confirm sustained FPS
  • Stress tests for real-time charts with large point counts
  • Measuring the impact of modifiers, styling, and GPU/DirectX settings

You can see it in action in the FIFO 1 Billion Points Demo and other Performance Demos / Featured Apps. In those pages the overlay is placed over the chart surface to show FPS as data streams.

Troubleshooting

  • Overlay shows zero or NaN FPS: ensure the main chart (SciChartSurface) is actually rendering anything (data present or interactions occurring) and that the SciChartPerformanceOverlay is attached to it
  • High WPF FPS but lower SciChart FPS: your app’s UI may be light while the chart is the bottleneck (e.g., enormous point counts or many series)
  • Lower WPF FPS than SciChart FPS: heavy UI activity (animations, other controls) can limit the overall frame rate

See Also